#ifndef RBT_COMMON_LIB
#define RBT_COMMON_LIB

#include "../typedef.h"
#include "../Text/Convert.h"
#include "../Text/Text.h"

namespace Common
{
	class SystemOperation
	{
	public:
		//Find file call back function
		typedef void (*FindFileCallBackFunc)(cstring&, WIN32_FIND_DATA&);

		//File path, dictionary and name operations
		static string GetProgrammeName();														//Get the running .exe file name without path
		static string GetProgrammePath();														//Get the running .exe file full path
		static string GetProgrammeDictionary();												//Get the running .exe file dictionary
		static string GetWorkingDictionary();													//Get the current working dictionary

		//Thread and Process information
		static string GetCurrentProcessHandleText();											//Get current process pseudohandle in text
		static string GetCurrentProcessIdText();												//Get current process Id in text
		static string GetCurrentThreadHandleText();											//Get current thread pseudohandle in text
		static string GetCurrentThreadIdText();												//Get current thread Id in text

		//File find operation
		static void FindFile(string fileName, FindFileCallBackFunc pFindFunc = NULL);			//Find file function

	protected:
		SystemOperation(void);
		~SystemOperation(void);
	};
}

#endif